System, apparatus and associated methodology for enriching contact of a remote client

ABSTRACT

A contact enrichment system is provided to determine whether contacts stored in a mobile device match profiles stored on a social network server. Profiles matching the contacts are used to enrich the contacts by appending information such as images and video to the contacts. The appended information in the contacts are also linked to the source profile so that the contact information may be periodically updated. Information may be drawn from multiple profiles on multiple social network servers to fully enrich the contacts stored on the mobile device.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is based upon and claims the benefit of priorityfrom U.S. provisional Application No. 61/094,450 entitled “System andAssociated Methodology of Enriching Contacts of a Remote Client”, filedon Sep. 5, 2008, the entire contents of which are incorporated herein byreference.

BACKGROUND

The present advancements relate to a system, apparatus and associatedmethodology for updating contact information in mobile devices, such ascell phones, smart phones and personal digital assistants (PDA's).

Many mobile devices, such as cell phones, smart phones and PDA's storecontacts for quick access to phone numbers, postal addresses and evenemail addresses corresponding to people and/or business with whichcommunication is frequently performed. Contact information may beorganized within mobile devices by an address book, or other suchapplication, according to a user-defined setting, such as alphabeticallyor based on predefined social, work and/or school groups.

Early mobile devices stored only text-based contact information, such asnames, address, phone numbers and other such text-based information.However, modern mobile devices may also store multimedia information,including images, video and audio, as part of a contact. When receivinga call, a mobile device may display, for example, a picture of thecaller that has been stored as part of the contact informationcorresponding to the incoming call. The mobile device may even play anaudio clip corresponding to the contact as the ringtone for the incomingcall.

However, for the mobile device to make use of contacts stored thereon,the contact information must be manually created and managed. This mayinvolve manual entry of phone numbers, addresses, email addresses andmultimedia content. Further, entry of multimedia content into a contactmay require downloading the content from a camera or other source into acomputer, formatting the content to be compatible with the mobiledevice, and downloading the content to the mobile device. Thus, creatingnew contacts or appending new information to existing contacts on amobile device requires a high degree of interaction between the mobiledevice and its user, making the process tedious.

The contacts of a mobile device may be synchronized with contacts storedon a computer or other device. In synchronization, the mobile deviceexchanges contact information with, for example, a computer such thatboth the mobile device and the computer have the same contactinformation. Synchronization allows for contact entry on a computer,which has a larger keyboard better suited to data entry, but stillrequires manual entry of all data and any updates or additions thereto.

Recently, social networking sites establishing new ways of communicationhave emerged on the Internet. Users of these social networking sites mayexchange emails, photographs, video, instant messages, and the like.Each user of the social networking site may also identify other users as“friends” with which to communicate and share information, provided theother users consent to the “friendship.” Once established, friendshipsallow users access to each other's profile information, which mayinclude multimedia content, such as images, audio and video, as well asmessages posted by friends to others or to groups.

Further, when a user first joins a social networking site, the user mayfill out a profile including personal information. Such profiles arethen used by other users to determine whether they share interests,location, or to gain general background information. Profiles may alsobe used by the social networking site itself to relay messages to, forexample, an email address of the user. As these profiles include suchbasic information as name, email address, postal address, phone number,images, video, audio, and may even include postings and/or messagescreated by the user, and any responses thereto, a social networking siteprofile includes information that may be applicable to contacts storedon a mobile device.

SUMMARY

In view of the foregoing, the present advancements provide a system forenriching contact information stored on a mobile device using profileinformation stored on, for example, a social networking site.

Thus, the present disclosure provides a content enrichment system thatincludes a social network server connected to a network and that storesa plurality of profiles in relation to a plurality of accounts. A mobiledevice that stores a plurality of contacts is also provided. A contactenrichment server connected to the network searches at least one accounton the social network server for a matching profile that corresponds toat least one of the contacts stored on the mobile device. The contactenrichment server then appends information from the matching profile tothe at least one contact.

In another aspect of the present advancement, the contact enrichmentserver links the information appended to the at least one contact tocorresponding information in the matching profile. The contactenrichment server stores the link between the appended information andthe corresponding information in the matching profile in a link table,and updates the information appended to the at least one contact usingthe link table when the corresponding information in the matchingprofile changes.

Other objects, features, and advantages of the present disclosure willbe fully understood from the following detailed description of exemplaryembodiments of the invention when in conjunction with the accompanyingdrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete appreciation of the invention and many of the attendantadvantages thereof will be readily obtained as the same becomes betterunderstood by reference to the following detailed description whenconsidered in connection with the accompanying drawings. However, theaccompanying drawings and their exemplary depictions do not in any waylimit the scope of the inventions embraced by this specification. Thescope of the inventions embraced by this specification and drawings aredefined by the words of the accompanying claims.

FIG. 1 is a block diagram of the contact enrichment system according toan exemplary embodiment of the present disclosure;

FIG. 2 is a block diagram of a contact enrichment server according to anexemplary embodiment of the present disclosure;

FIG. 3 is a block diagram of a mobile device according to an exemplaryembodiment of the present disclosure;

FIG. 4 is a table of exemplary contact information stored on a mobiledevice according to an exemplary embodiment of the present disclosure;

FIG. 5 is a table of exemplary information stored in a profile on asocial networking server according to an exemplary embodiment of thepresent disclosure;

FIG. 6 is a functional diagram of the contact enrichment serveraccording to an exemplary embodiment of the present disclosure;

FIG. 7 is a diagram of contact enrichment according to an exemplaryembodiment of the present disclosure;

FIG. 8 is diagram of contact enrichment according to another exemplaryembodiment of the present disclosure;

FIG. 9 is an algorithmic flow chart of content enrichment according toan exemplary embodiment of the present disclosure;

FIG. 10 is an algorithmic flow chart of contact-profile matchingaccording to an exemplary embodiment of the present disclosure;

FIG. 11 is a link table according to an exemplary embodiment of thepresent disclosure;

FIG. 12 is an algorithmic flow chart of link data update according to anexemplary embodiment of the present disclosure; and

FIG. 13 is an algorithmic flow chart of alert issuance according to anexemplary embodiment of the present disclosure.

DETAILED DESCRIPTION

In the description the term “contact” as used herein refers toelectronic information pertaining to a person or entity that is storedon the mobile device (or a client device.) The term “profile” is used torefer to a collection of information pertaining to a user that is storedon a social networking site, other remote site or client device. Thepresent disclosure also describes the entire group of contacts as the“address book.”

FIG. 1 is a diagram of the system for contact enrichment according to anexemplary embodiment of the present disclosure. In FIG. 1, a contactenrichment server 100, social network server 110, client device 120 andmobile device 140 are interconnected by network 130.

Network 130 may be, for example, a wide area network (WAN), a wirelesswide area network (WWAN) or a circuit-switched telephone network, suchas an Integrated Services Digital Network (ISDN). The network 130 mayalso be a public network such as the Internet, a hybrid network (partlypublic and partly private) or a dedicated network. If the network 130 iswireless, radio network access can include Global System for MobileCommunication (GSM), General Packet Radio Services (GPRS), Enhanced DataGSM Environment (EDGE), Code Division Multiple Access (CDMA), 3G, 4G andthe like. Other networks, whose descriptions are omitted here forbrevity, may also be used in conjunction with the system of FIG. 1without departing from the scope of the present advancement.

The social network server 110 stores user profiles and accounts isconnected to the network 130 via connection 111, which may be wired orwireless as discussed above. The client device 120 may also be connectedto the network 130 via a connection 121 that is either wireless orwired. The client device 120 may be used to manage the account and/orprofile information on the social network server 110, and may be, forexample, a personal computer. The client device 120 may also manageinformation stored in the contact enrichment server 100 and the mobiledevice 140, as will be explained below.

Mobile device 140 is connected to the client device 140 through link142. Mobile device 140 may be a smart phone, such as the iPhonemanufactured by Apple, Inc. of Cupertino, Calif., U.S.A. Link 142 may bea wired link, such as a USB link, or a wireless link such as a cellularphone communication medium, WiFi or Bluetooth. The mobile device 140 mayalso be directly connected to the network via link 141 which may be anyone of a Bluetooth connection, WIFI connection or a cellular connection.As the mobile device 140 may be connected to the network 130 via theclient device 120 or directly via connection 141, connection 141 andlink 142 are shown in dashed lines to indicate that one or the other maybe omitted.

The contact enrichment server 100 is also connected to network 130through link 101, which may be wired or wireless. The contact enrichmentserver 100 includes information regarding the accounts and profilesstored in the social network server 110, as well as informationidentifying the mobile device 140. Thus, the contact enrichment server100 has access to both the profiles stored on the social network server110 and contacts stored on mobile device 140.

In an exemplary embodiment, a web front end is provided to present agraphical user interface (GUI). The contact enrichment server 100employs a windows based operating system, however alternative operatingsystems may include but are not limited to Unix, Solaris, Linux, as wellas Apple MAC-OS. Thus, the contact enrichment server 100 provides thefront end for connection to the network such as the Internet. In theexemplary embodiment, the contact enrichment server 100 employsMicrosoft® Windows 2000 Server IIS, Active Directory, and FTP, and mayalso employ Microsoft® Windows 2000, COM and DOT net services, as wellas Microsoft® Windows 2000 MS SQL for interfacing, searching and storingprofile and contact information.

Further, the contact enrichment server 100 may be housed within a singledevice or may be implemented separately on FPGA's, ASIC's,microcontrollers, PLD's or other computer-readable mediums such as anoptical disk. Contact enrichment server 100 may also be implemented in adistributed architecture including multiple devices having, for example,the structure of FIG. 2. As is recognized by one skilled in the art, theabove description of the contact enrichment server is applicable to thesocial network server 110.

One of skill in the art will recognize that the contacts may also bestored on client device 120, or the contacts may be shared betweenclient device 120 and mobile device 140. In addition, client enrichmentserver 100 may store a copy of the contacts. Thus, the presentadvancements are equally applicable to enrichment of contacts on themobile device 140, client device 120 and/or contact enrichment server100. Those skilled in the art will also recognize that multiple contactenrichment servers 100, social network servers 110, client devices 120and mobile devices 140 may form part of the system in FIG. 1 withoutdeparting from the scope of the present invention.

The contacts stored on the mobile device 140 may be organizedalphabetically, according to groups, frequency of contact, or the like.The contacts in the mobile device 140 may also be stored in an addressbook application for ease of management and organization. Copies of theaddress book may exist on the client device 120 and/or the contactenrichment server 100 as described above. Alternatively, only mobiledevice 140 stores the contacts and/or address book, and the clientdevice 120 merely serves as a conduit for transmitting informationpertaining to the contacts stored on the mobile device 140 to/from thecontact enrichment server 100.

FIG. 2 is a block diagram of the contact enrichment server 100. Thecontact enrichment server 100 includes a CPU 280 which processes dataand instructions stored in main memory 240 and/or ROM 250. The CPU 280may also process information stored on the disk 210 or CD-ROM 220. Theexemplary CPU 280 may be an IBM System X from IBM of America employingat least one Xenon processor from Intel of America or an Opteronprocessor from AMD of America. Thus, instructions corresponding to aprocess for contact enrichment in a mobile device may be stored on anyone of the disk 210, CD-ROM 220, main memory 240 or ROM 250.

The contact enrichment server 100 also includes a network interface 275,such as a an Intel Ethernet PRO network interface card from IntelCorporation of America, for interfacing with the network 130; a displaycontroller 230, such as a NVIDIA GeForce GTX graphics adaptor fromNVIDIA Corporation of America for interfacing with a display 200, suchas a Hewlett Packard HP L2445w LCD monitor. The contact enrichmentserver 100 may also include an I/O interface 290 for interfacing with akeyboard 295 and pointing device 285, such as a roller ball or mouse.Disk controller 260 interconnects disk 210, such as a hard disk drive orFLASH memory drive, and CD-ROM 220 or DVD drive with bus 270, which maybe an ISA, EISA, VESA, PCI, or similar for interconnecting all of thecomponents of the contact enrichment server 100. A description of thegeneral features and functionality of the display 200, keyboard 295 andpointing device 285, as well as the display controller 230, diskcontroller 260, network interface 275 and I/O interface 290 is alsoomitted for brevity as these features are well known. Of course, otherprocessor and hardware vendors and types are known in the art such asFreescale ColdFire, i.MX and ARM processors from Freescale Corporationof America.

The exemplary contact enrichment server of FIG. 2 is therefore ahardware platform of a computing device, such as a PC, and CPU 280 mayfor example be an Intel Pentium Processor, or any other processor knownin the art. The computer-readable instructions stored on any one of themain memory 240, ROM 250, disk 210 or CD-ROM 220 may be provided as autility application, background daemon, or component of an operatingsystem, or combination thereof, executing in conjunction with CPU 280and an operating system such as Microsoft VISTA, UNIX, Solaris, LINUX,Apple MAC-OS and other systems known to those skilled in the art.

Main memory 240 and/or ROM 250 supports registries and the like featuresof the contact enrichment server 100. As such, main memory 240 may be arandom access memory (RAM), FLASH memory, EEPROM memory, or the like,while ROM 250 is Read Only Memory, such as PROMs. Further descriptionsof the main memory 240 and the ROM 250 are omitted for brevity as suchmemory is well known.

FIG. 3 is a block diagram of a mobile device 140 according to anexemplary embodiment of the present disclosure. Mobile device 140, whichmay be a smart phone such as an iPhone from Apple, Inc. of America,includes a processor 1320 used to control the functions of mobile device140 and to run applications thereon, such as an electronic address book,interne browser, etc. Processor 1320 may be an ARM processor or aprocessor such as a Core 2 Duo from Intel Corporation of America.Alternatively, Processor 1320 may be implemented on an FPGA, ASIC orusing discrete logic circuits, as one of ordinary skill will recognize.

A user interface 1310, which may include a microphone, speaker, touchscreen, keyboard or any combination thereof, allows the processor 1320to receive input from a user of the mobile device 140, and a display1315 provides feedback to the user. Display 1315 may be a color ormonochrome LCD display or any other display that is known.

Mobile device 140 also includes a communication interface 1305 andantenna 1335 to communicate with other devices, such at the contactenrichment server 100, social network server 110, client device 120 oranother mobile device 140. Further, mobile device 140 may communicatewith these other devices wirelessly using the cellular network(including EDGE, 3G, 4G, etc.,) a WiFi connection, a Bluetoothconnection or any other wireless form of communication that is known.Mobile device 140 may also communicate through a wired connection tocommunication interface 1305, such as a USB connection.

Mobile device 140 includes read-only memory, ROM 1330, to storelow-level functions and processes necessary to support corefunctionality, and re-writable memory 1325, which stores an operatingsystem, drivers, applications, application data and user data.Re-writable memory 1325 may be dynamic or static random access memory(RAM), FLASH memory, EEPROM memory, and the like. Further, portions ofthe re-writable memory 1325 may be removable.

For example, re-writable memory 1325 may store an application forcommunicating with contact enrichment server 100 to identify mobiledevice 140 and to provide the contact enrichment server 100 with accessto contacts stored therein. Such application may be downloaded, via anyof the communication methods described above, from the contactenrichment server 100, from a software repository or from an onlinestore, such as the App Store from Apple, Inc. of America. Further, suchan application may be an electronic address book, or electronic personalinformation manager (PIM). However, the application may also be aplug-in for an electronic address book or PIM already installed onmobile device 140, a background application, driver and the like.

As one of skill in the art would recognize, the above descriptions ofthe contact enrichment server 100 and mobile device 140 are merelyexemplary and other server configurations and mobile devices may be usedwithout departing from the scope of the present advancements. Further,client device 120 and social network server 110 may include similarstructures as the contact enrichment server 100. Thus, the abovedescription of the hardware features for the contact enrichment server100 may be equally applicable to the social network server 100 andclient device 120.

FIG. 4 includes contacts 300 stored on the mobile device 140. Exemplary,contacts 300 include three entries, contacts 340, 350 and 360. However,one of skill in the art will recognize that the number of contacts 300stored in mobile device 140 is limited only by the memory capacity anduser preferences of mobile device 140.

Each exemplary contact 300 includes a name 310, phone 320 and address330 entry. For example, contact 340 has a name 310 of “John Smith”, aphone 320 of “111-1111” and an address 330 of “123 Elm Ave”. However,other entries, such as email addresses, Instant

Messaging Identifiers (IN ID's), images, ringtones, audio files, videofiles, messages, calendar events, etc., are embraced by thisdescription.

FIG. 5 includes profiles 400 stored on the social network server 110.While large numbers of profiles are stored in social network server 110,respective ones of profiles 400 are associated with an individual useraccount. Each exemplary profile 400 includes name 410, phone 420, email430, image 440 and posts 450 entries associated therewith. For example,the profile 460 has a name 410 of “Paul Smith”, a phone 420 of“444-4444”, an email 430 of “paul@net.net”, an image 440 of “paul.jpg”and a post 450 of “mssg.txt”. As with contacts 300, profiles 400 aremerely exemplary and additional information may populate the profiles400 as noted above.

Exemplary profiles 400 may include audio files in a variety of audioformats, such as MP3, WAV, PCM, APE, ATRAC, AIFF, AAC, etc., and videofiles in such formats as MPEG, AVI, MOV, etc. Although, images inprofiles 400 have a “.jpg” extension corresponding to JPEG images, otherimage formats are known, such as TIFF, GIF, BMP, etc. Even the textualentries may be in any format known in the art, such as TXT, RTF, DOC,etc. As such, exemplary profiles 400 are presented in a simple formherein to tautological purposes only.

The contact enrichment server 100 has access to both contacts 300 andprofiles 400 and is therefore able to enrich contacts 300 withinformation from profiles 400 as discussed below with reference to FIGS.6-8.

FIG. 6 is a functional block diagram of the contact enrichment server100 according to an exemplary embodiment of the present disclosure. InFIG. 5, CPU 520 of the contact enrichment server 100 includes aregistration module 522 used to register user social networking accountsand mobile device(s) 140; a searching module 523 used to search theprofiles 400 for profiles matching the contacts 300 stored on the mobiledevice 140; a matching module 521 used to match the profiles 400 to atleast one contact 300; and an appending module 524 used to appendinformation from the profiles 400 to the contacts 300.

Modules 521, 522, 523 and 524 identify functionality of an applicationrun by CPU 520 rather than independent tasks. As such, the functionalityof modules 521-524 may be implemented as an application or backgrounddaemon, or may be integrated into one of the operating systems describedabove.

The contact enrichment server 100 of FIG. 6 also includes acommunication interface 510 used to communicate to the social networkserver 110, the mobile device 140 and the client device 120 throughnetwork 130. Memory 530 includes account registration information 531 inwhich the registration module 522 registers information identifying useraccounts on the social network server 110 and the mobile device 140.Memory 530 also includes link table 532 to store information linkinginformation appended to contacts 300 with corresponding information theprofiles 400. Thus, the contact enrichment server 100 may use the linktable 532 to update the appended information in contacts 300, asdiscussed in detail below.

Next, an overview of the contact enrichment process performed by thecollective modules of contact enrichment server 100 is described withreference to FIGS. 7-10. Those skilled in the art will recognize FIGS.7-10 as providing the algorithmic detail necessary to implement modules521-524 of the contact enrichment server 100 in code. Of course, thespecific choice of coding language is within the discretion of acompetent programmer. Likewise, program listings are unnecessary as suchcoding is well within the skill of a competent programmer.

FIG. 7 includes contacts 300 of the mobile device 140 and profiles 400corresponding to a user account on the social network server 110. Oncethe user social network account and mobile device 140 are registered incontact enrichment server 100, the contact enrichment server 100searches the profiles 400 for profiles matching contacts in table 300.In FIG. 6, profile 480, “John Smith,” is identified by the contactenrichment server 100 as matching the contact 340 stored on the mobiledevice 140, as indicated by line 670.

In FIG. 7, the contact enrichment server 100 uses the names 310 of thecontacts 300 to search the names 410 of the profiles 400. However, asrecognized by one skilled in the art, other criteria as described hereinmay be used to search for matching profiles. For example, searches maybe made by comparing phone numbers, addresses, email addresses, textmessages, emails, postings, or any other information known in the art.

Further, to search the profiles 400 in social network server 110, thecontact enrichment server 110, may directly access profiles 400 onsocial network server 110 using a Virtual Private Network (VPN)connection, Secure Sockets Layer (SSL), secure Hypertext transferprotocol (HTTPS). Alternatively, the contact enrichment server 100 mayemulate a user, and browse through the web pages of the graphical userinterface (GUI) of the social network server 110 to access and searchprofiles 400. Other methods and protocols for communication betweendevices may also be used without departing from the scope of the presentdescription.

Once a contact-profile match is identified, the contact enrichmentserver 100 examines the contact and matching profile to determinewhether the matching profile includes information not included in thecontact. In FIG. 7, the contact enrichment server 100 may examinecontact 340 and profile 480 to determine whether profile 480 includesany information not included in contact 340. If profile 480 does notinclude any additional information in this case, the contact enrichmentserver 100 takes no action.

In FIG. 7, profile 480 includes email 430, image 440 and posts 450,which are not included in contact 340. Therefore, the contact enrichmentserver 100 enriches contact 340 by appending email 430, image 440 andposts 450 from profile 480 to contact 340. Arrow 680 represents theenrichment of contacts 300 in FIG. 7.

Contacts 600 are the contacts 300 stored in mobile device 140 afterenrichment by contact enrichment server 100. Contacts 650 and 660corresponding to contacts 350 and 360 and are unchanged as the contactenrichment server 100 did not find matching profiles in profiles 400.However, contact 640 corresponding to contact 340 now includes email631, image 632 and posts 633, which have been appended by the contactenrichment server 100 from profile 480.

To enrich contacts 300, the contact enrichment server may store a copyof contacts 300, append matching information to the contacts 300 togenerate contacts 600, and then transfer contacts 600 to the mobiledevice via the client device 120 or directly through link 141.Alternatively, the contact enrichment server 100 may identifyinformation from profiles 400 to be appended to contacts 300, andtransmit the identified information to, for example, client device 120.Client device 120 may then transmit the identified information to themobile device 140, and the mobile device 140 may append the identifiedinformation to corresponding contacts in contacts 300. Client device 120may also store a copy of contacts 300, and may therefore append theidentified information to the mobile device 140 to generate contacts600. Then the client device 120 may transfer contacts 600 to mobiledevice 140 by any means known in the art, including synchronization.

Profiles 400 are not affected by the contact enrichment described aboveas contact enrichment server 100 enriches only contacts 300 stored inmobile device 140 and/or contacts 300 stored in client device 120.Therefore, address 330 of contact 340 is not appended to profile 480despite the match between contact 340 and profile 480. Further, ascontact enrichment involves appending information to existing contacts300, profiles 460, 470 and 490 are not transferred to the mobile device140 as no corresponding contact was identified among contacts 300.

FIG. 8 corresponds to another contact enrichment example in which morethan one profile 400 on the social network server 110 matches a contact300 stored on the mobile device 140. The contact enrichment server 100uses name 310 of contacts 300 to identify corresponding matches in name410 of profiles 400, and identify profiles 480 and 490 as matchingcontact 340. When more than one profile is identified as a potentialmatch to a single contact, the contact enrichment server 100 mayincrease the number of criteria used to identify a match. In FIG. 8, thecontact enrichment server 100 may compare name 310 to name 410 and phone320 to phone 420 to identify profiles 400 matching contacts 300. Forexample, both profiles 480 and 490 have names that match the name incontact 340. However, only profile 480 has both a name and a phonenumber that matches the name and phone number of contact 340. Therefore,the contact enrichment server 100 identified profile 480 as a match, andenriches contact 340 to generate contact 740 as described above.

Alternatively, the contact enrichment server 100 may simply substituteone search criteria for another when multiple matching profiles arefound. For example, the contact enrichment server 100 may use phone 320and phone 420 to determine a matching profile rather than name 310 andname 410. The contact enrichment server 100 may also update contact 340using information from both profiles 480 and 490. Thus, the contactenrichment server 100 may use multiple profiles 400 to update a singleone of contacts 300 when the number of matching profiles is less than apredetermined threshold. For example, if the number of matching profilesis less than or equal to five.

When the contact enrichment server 100 enriches a contact using multipleprofiles, the contact enrichment server 100 may first compare timestampsfrom the multiple profiles to determine a most recent profile and enrichthe contact using the most recent profile. The contact enrichment server100 may also compare timestamps of individual data items within theprofiles to determine a most recent version of each data item, and thendraw from the multiple profiles to enrich the contact with the mostrecent data items. Other techniques of combining related information mayalso be used by the contact enrichment server 100 as would be recognizedby one skilled in the art.

If, however, the number of matching profiles exceeds the predeterminedthreshold, the contact enrichment server 100 may refine the search formatching profiles as described above at least until the number ofmultiple matching profiles drops below the predetermined threshold.

When fields in the contacts 300 do not correspond to fields in theprofiles 400, the contact enrichment server 100 may map the contactfields to the profile fields according to a manually specified mappingor using default rules. For example, the contact enrichment server maymap a profile field of “mobile” to the phone 320 field of contacts 300.If a profile has both a phone 420 field and a “mobile” filed, thecontact enrichment server 100 may map the mobile field to an unusedcontact field, such as a user defined field. Alternatively, the contactenrichment server 100 may ignore a profile field if a mapping cannot beestablished or if the corresponding information is incompatible with themobile device. However, the contact enrichment server 100 may alsoconvert incompatible information into a compatible format or provide adescription thereof in the corresponding contact. Other techniques formapping information may also be used without departing from the scope ofthe present disclosure.

In the description of contact enrichment given above, a single socialnetwork server 110, a single contact enrichment server 100 and a singlemobile device 140 are used for simplicity. However, the presentadvancement is not limited to a single social network server 110, singlecontact enrichment server 100, and mobile device 140. Rather, multiplesocial network servers 100, which may or may not be related, andmultiple contact enrichment servers 100 may be used in conjunction withthe present advancement to update contacts stored on multiple mobiledevices 140. Further, the contacts may also be stored on the clientdevice 120, such that the above-described enrichment of contacts isequally applicable to enrichment of contacts on the client device 120.

Moreover, the social network server 110 may also be an email server,message board, file sharing server, private network directory, mediaexchange host or any other device for facilitating communication, filesharing and storage of profile information that is known in the art.

Next, a method for contact enrichment of mobile device 140 is describedwith reference to FIG. 9. In step 805, social networking accounts areregistered in the contact enrichment server 100. Specifically, themobile device 140 or the client device 120 may be used to inform contactenrichment server 100 of user accounts on social network server 110. Inthis case, an account on social network server 110 includes informationcorresponding to the owner of the account as well as informationregarding other users of the social network server 110, with may becontained in an address book, a list of friends, in groups associatedwith the account, in messages, and the like. Each account may bepublicly viewed or may be restricted to viewing by authorized users. Inthe case of a restricted account, the contact enrichment server 100 isto be given a password, encryption key, certificate or any other suchmeans of gaining access to the account. Further, registration of anaccount also involves identifying a network address of the account,including the address of the social network server 100 and an accountID.

At the time of registration, or any time thereafter, specific profileswithin the registered accounts may be identified as corresponding tocontacts 300, or the contact enrichment server 100 may be instruction toignore certain profiles.

In step 810 the mobile device 140 storing contacts 300 to be enriched isregistered in the contact enrichment server 100. Registration of themobile device 140 includes uniquely identifying the mobile device 140 tothe contact enrichment server 100, and providing any addresses andpasswords necessary to gain access to contacts 300. The registration ofthe mobile device 140 may be performed explicitly by accessing a userinterface of the contact enrichment server 100 via the mobile device 140or client device 120. However, registration of the mobile device 140 mayalso be done implicitly by downloading appropriate software to themobile device 140 for interfacing with the contact enrichment server100. Such software may include without limitation, a web browser, anelectronic address book, a personal information management application,and/or a plug-in for any of these software applications.

Once registration of social network accounts and the mobile device 140is accomplished, the contact enrichment server 100 communicates with themobile device 140 to determine the contacts 300 stored thereon. Suchcommunication may take place over a cellular network, a WiFi network, aBluetooth network, or may be performed vial client device 120 byconnecting mobile device 140 to the client device 120 using, forexample, a USB connection. Other communication implementations are alsopossible without departing from the scope of the present invention.

The contact enrichment server 100 also contacts social network server110 to access the social network accounts registered by the user in step805. By accessing the registered social network accounts, the contactenrichment server 100 may assemble a list of profiles 400 correspondingto the social network accounts. Contact enrichment server 100 mayassemble the list by storing copies of the profiles 400 or any portionthereof, such as name 410. A unique identifier assigned by the socialnetwork server 110 may also be used by the contact enrichment server 100to reference profiles 400 and compile the profile list.

In step 815, the contact enrichment server 100 compares the contacts 300of the mobile device 140 to the profiles 400 of the social networkserver 110. As discussed above, comparison may include comparingindividual fields in both the profiles and the contacts, or multiplefields in both the profiles and the contacts. At step 820, the contactenrichment server determines whether a match exists between a profile onthe social network server 110 and the contacts on mobile device 140. Ifa match exists, the contact enrichment server 100 then determineswhether the contact 300 includes any linked data at step 840.

Linked data is data that has been previously appended to contact 300 bythe contact enrichment server 100 using one or more of the profiles 400.Thus, contacts 300 may included contacts that have been previouslyenriched by the contact enrichment server 100 as described above. Thelinked data is linked to a corresponding source in the profiles 400 bythe contact enrichment server 100 to allow for updates of the data. Dataupdate and data linking is described in detail below. If the contactenrichment server 100 determines that the contact 300 includes linkeddata, the contact enrichment server updates the linked data at step 850.

If no linked data is identified, the contact enrichment server 100 thendetermines whether the matching profile includes new data at step 845.New data is data from the matching profile that is not included in acorresponding contact. If the matching profile includes new data, thecontact enrichment server 100 appends the new data to the correspondingcontact and links the new data with the original data on the matchingprofile at step 855. If the matching profile contains no new data, thecontact enrichment server 100 does not update the contact, but insteaddetermines whether additional contacts are stored in the mobile device140 at step 825. If no additional contacts are stored on mobile device140 the contact enrichment process ends at step 835.

If additional contacts are stored in the mobile device 140, the contactenrichment server 100 selects the next contact at step 830 and performsthe steps 815, 820, 840, 845, 850 and 855 described above. Thus, thecontact enrichment server 100 cycles through all contacts 300 stored inthe mobile device 140 to determine whether any corresponding matchingprofiles exist on social network server 110, and enriches any contactsfor with matching profiles are determined.

FIG. 10 is a flow chart of the process for selecting a matching profile.At step 905 the comparison criteria is selected. For example, thecomparison criteria may be manually selected during configuration of thecontact enrichment server 100 through client device 120 or mobile device140. Alternatively, a default search criteria may be used. As discussedabove search criteria may include names, phones, addresses, emailaddresses, images, videos, messages, IM ID's and/or any combinationthereof Other search criteria, such as freeform test searches are alsopossible. The predetermined threshold for multiple matching profiles mayalso be set during configuration of the contact enrichment server 100,or a default value may be assumed.

Once the comparison criteria is selected, the process moves to step 910where the contacts 300 on the mobile device 140 and profiles 400 on thesocial network server 110 are compared as described above. If a match isdetermined at step 915 the process proceeds to step 920 where it isdetermined whether multiple matching profiles exist. If no multiplematching profiles exist, the contact and its matching profile in thesocial network server 110 are identified so that the contact enrichmentserver 100 may enrich the contact.

In this context a match is determined when comparable information fieldsstore identical data. For example, if both a name field of a contact anda name field of a profile store the name “john” a match may bedetermined. Alternatively, a match may be determined if both fieldsinclude the identical data. For example, if one name field stores “johnsmith” and the other name filed simply stores “john”.

Matching, however, does not require identical information. Matches maybe determined for similar information whose degree of similarity (i.e.how close the information comes to being identical) is above apredetermined threshold, or matching may be determined when a profileand contact have information in common in multiple fields. Additionally,the fields may be weighted to emphasize the importance of similarity incertain fields while de-emphasizing the importance of similarity inothers. Any other matching techniques and/or techniques for quantifyinga degree of similarity known in the art may also be used withoutdeparting from the scope of the present disclosure.

When multiple matching profiles are identified at step 920, the contactenrichment server proceeds to step 925 where it determines whether thenumber of matching profiles exceeds a predetermined threshold, forexample 5. As discussed above, a threshold of five has been arbitrarilychosen to provide a concrete example of the functionality of the presentadvancement, but in no way should this number be interpreted as limitingupon the present advancement. Other thresholds are equally possible. Forexample, the contact enrichment server may determine that if ten orfewer matching profiles exist the contact will be enriched withinformation from all of the matching profiles, or the contact enrichmentserver may determine that if two or more matching profiles exist thesearch will need refining before the contact may be enriched.

If, in FIG. 10, it is determined that more than five matching profilesexist at step 925, the process proceeds to step 940 where additionalcomparison criteria is added to the search. For example, in addition tosearching by name, the contact enrichment server 100 may search by nameand phone number or by name and email address, or by name and postaladdress. Further, the contact enrichment server may add additionalcriteria and therefore search by name, email address and phone number orby name, email address and postal address, or any other combination ofsearch criteria. Alternatively, the contact enrichment server 100 maysubstitute a name search for a phone number search or an email addresssearch, as one of ordinary skill in the art will recognize. Once theadditional comparison criteria is established at step 940, the processreturns to step 910 where the contact and profiles are again compared.

Returning to step 915, if no matching profiles are determined theprocess moves to step 830 where a next contact is chosen for comparison.Likewise in step 925, if the number of matching profiles is fewer thanthe predetermined threshold, the contact and corresponding matchingprofiles are identified so that the contact enrichment server 100 mayenrich the contact with information from all matching profiles.

Further, though the above process has been described as sequential,other implementations are possible. For example, the contact enrichmentserver 100 may compare all contacts will all profiles simultaneously.The contact enrichment server may also compare multiple criteria fromeach contact with corresponding criteria in each profile simultaneously.Alternatively, the contact enrichment server may sequentially compareone contact after the other or may compare one criteria after another.Any other search methods known in the art are also equally applicablewith the present invention.

Once a contact and matching profiles are identified, the contactenrichment server 100 enriches the contact by appending information fromthe matching profile to the contact. In this case, appending informationmay be performed by copying the contact to the contact enrichment server100, appending the information on the copy of the contact in the contactenrichment server and then transmitting the enriched contact to themobile device 140. Alternatively, all contacts from the mobile device140 may be uploaded to the contact enrichment server 100, where they areeach enriched as discussed above. Then, the enriched contacts may betransmitted back to the mobile device 140. Additionally, theabove-described process is equally applicable to the client device 120and any contacts stored therein. Thus, the contacts stored on the mobiledevice 140 may be transmitted to the client device 120 via, for example,link 142, and the contact enrichment server may enrich the contacts onthe client device 120. After enrichment, the contacts on the clientdevice 120 may then be transferred back to the mobile device 140.

After the contact enrichment server 100 enriches a contact, theinformation appended to the contact is linked to the originalinformation in the matching profile. Specifically, the contactenrichment server stores a contact ID 1010 and contact path 1020 in alink table 1000 together with the corresponding profile ID 1040 andcorresponding profile path 1050. (See FIG. 10). Thus, the contactenrichment server 100 may keep track of the sources used to enrich agiven contact. The contact enrichment server 100 may also includeadditional data in the enriched contact identifying a source of theappended data in lieu of the link table 1000, and other methods oflinking data are also possible as will be recognized by one of skill inthe art.

In FIG. 12, the process of updating linked data (i.e., data appended toa contact by the contact enrichment server 100) is described. In FIG.12, the process begins by checking profile items corresponding to thelinked data in step 1100. For example, in FIG. 6, contact 640 isenriched with email address 631 from profile 480. Thus, link table 1000includes an entry 1060 with a contact ID 1010 of John Smith and acontact path of mobile 140 which is linked to a profile ID 1040 ofjs@net.net and a profile path 1050 of a URL corresponding to the socialnetwork server 110. If the email 430 of profile 480 changes, the contactenrichment server 100 identifies this change at step 1110. Then thecontact enrichment server 100 proceeds to step 1120 where the contactenrichment server 100 uses link table 1000 to identify, for example,contact 340 as corresponding to profile 480. In step 1130 the profile640 is updated with the changed information corresponding to email 631.Thus, the contact enrichment server 100 not only enriches contacts byappending new information to the contacts, the contact enrichment serveralso maintains the appended information current.

Though the above process has been described with respect to updatingcontact information, such as email, phone numbers, addresses, images andthe like, other information may also be updated using the presentadvancement. For example, messages on the social network server 110 maybe updated using the above described method. A message posted to a grouplisted in a registers used account may be appended to a contact in theuser device 140 as described above. Also, a message originated from amatching profile or directed to a matching profile may also be appendedto a corresponding contact on mobile device 140.

When enriching contacts with messages, it may be desirable to indicatenew messages with a visual and/or audible alert at the mobile device140. FIG. 13 is a flow chart for issuing an alert when a message hasbeen appended to a contact on mobile device 140 using the methoddescribed above. In FIG. 12, a message is detected at step 1200. At step1205 it is determined whether the message is directed to a registeredsocial network account or any of the profiles 400. If the message isdirected to a registered account, an originator of the message isdetermined at step 1215. If the originator of the message is not one ofthe profiles 400, the process ends at step 1140 without issuing analert. If the originator of the message is one of the profiles 400, acorresponding contact in mobile device 140 is identified using linktable 1000 in step 1220. At step 1225 a visual alert is associated withthe contact on mobile device 140. Such visual alert may include changingthe font color, size, or boldness corresponding to the contact, adding acheck, dot or other glyph to signify that a message has been received,or any other such visual cues as known in the art.

In step 1230 the audible alert settings are determined. If an audiblealert should be issued, alert is issued at step 1235. The audible alertmay also include vibrating the mobile device 140. If no audible alertshould be issued then the process ends at step 1140 after placing thevisual alert in the corresponding contact.

Returning to step 1210, if the detected message is not directed to theregistered account, but is originated from a profile associated with theregistered account, such as a profile in a friend list or group, themethod proceeds through steps 1220, 1225, 1230 and possibly 1235 asdescribed above. If, however, the detected message is not issued to theregistered account or originates from an associated profile, then theprocess merely ends at step 1140.

Further, the alerts issued by mobile device 140 are entirelyconfigurable. For example, audible alerts may be configured to onlyissue when a message originates on a friend list of a registeredaccount. Audible and/or visual alerts may also issue when a profile onthe friend list receives a message from another profile on the friendlist or another profile not on the friend list. Alternatively, audibleand/or visual alerts may be entirely disabled.

Additionally, the message itself may be transmitted to the mobile device140 or the visual/audible alert may be issued without transmission ofthe message to the mobile device 140. Thus, retrieval of the message maybe performed in a separate operation or may be part of the alert issuingprocess described above. In this context a message may be a textmessage, such as an email or IM message, or may be an image, video oraudio file being shared by the originator of the message.

Additional variations on the above described system, apparatus andmethod are also possible. For example, though the social network server110 is described as a social networking server that allows communicationvia message boards, posts, email, instant messaging and the like, socialnetwork server 110 may also be a web mail server, a blog server, or anyother server and/or website used for communication as known in the art.

Moreover, if the contact enrichment server 100 incorrectly enriches acontact, the incorrect content may be deleted by accessing the contactenrichment server 100 through client device 120 or mobile device 140.Any such deleted content will not be appended by the contact enrichmentserver 100 in the future, and any link to a corresponding profile isremoved from the link table 100.

In addition, a user may compile a profile on the contact enrichmentserver 100, which the user may or may not indicate as being public. Ifthe user indicates the profile as being public, other users, or thecontact enrichment server 100, may search the user's profile for contactand/or profile information. However, if the user identifies the profileas private, the profile is hidden from other users, and the contactenrichment server 100 must explicitly be granted access.

Profiles 400 also need not reside in a single social network server 110.Instead, profiles 400 may reside in multiple social network servers 110that may or may not be related. Preferably, contact enrichment server100 may draw from a large number of profiles 400 distributed across manysocial network servers 100 to enrich all contacts 300 stored in themobile device 140 or the client device 120. When multiple matchingprofiles are identified, the contact enrichment server 100 preferablychecks timestamp information across all of the social network servers100.

In another aspect of the present disclosure, a history of informationappended by the contact enrichment server 100 may be viewable inassociation with the contacts 300. For example, read and unreadmessages, message alerts, images, video, audio, etc., may be identifiedin each contact 300 and may be directly accessible by viewing thecontact in the address book or other organizing application installed onthe mobile device 140.

Moreover, any processes, descriptions or blocks in flow charts should beunderstood as representing modules, segments, portions of code whichinclude one or more executable instructions for implementing specificlogical functions or steps in the process, and alternate implementationsare included within the scope of the exemplary embodiment of the presentinvention in which functions may be executed out of order from thatshown or discussed, including substantially concurrently or in reverseorder, depending upon the functionality involved, as would be understoodby those skilled in the art. Though the contact enrichment server 100 isdescribed above as searching social network server 110, or any variationthereof, the contact enrichment server may also search other mobiledevices 140 and/or client devices 120 for profile and/or contactinformation with which to enrich contacts on a mobile device.

Obviously, numerous modifications and variations of the presentinvention are possible in light of the above teachings. It is thereforeto be understood that within the scope of the appended claims, theinvention may be practiced otherwise than as specifically describedherein.

1. A contact enrichment system comprising: a social network serverconnected to a network and configured to store a plurality of profilesin relation to a plurality of accounts; a mobile device configured tostore a plurality contacts; a contact enrichment server connected to thenetwork and configured to search at least one account on the socialnetwork server for a matching profile corresponding to at least onecontact stored in the mobile device, the contact enrichment serverappending information from the matching profile to the at least onecontact.
 2. The contact enrichment system according to claim 1, whereinthe contact enrichment server identifies a matching profile by comparinga subset of data items included in the at least one contact withprofiles included in the at least one account.
 3. The contact enrichmentsystem according to claim 2, wherein the contact enrichment serveridentifies a matching profile when one data item in the subset of dataof the at least one contact is present in the matching profile.
 4. Thecontact enrichment system according to claim 3, wherein the contactenrichment server appends information from multiple matching profiles tothe at least one contact when more than one matching profile isidentified.
 5. The contact enrichment system according to claim 4,wherein the contact enrichment server compares timestamp informationfrom the multiple matching profiles and appends information from amatching profile having a most recent timestamp to the at least onecontact.
 6. The contact enrichment system according to claim 3, whereinthe contact enrichment server identifies a matching profile when morethan one data item of the subset of data items of the at least onecontact is present in the matching profile.
 7. The contact enrichmentsystem according to claim 2, wherein the subset of data items includesat least one of a name, a phone number, an email address and a postaladdress.
 8. The contact enrichment system according to claim 1, whereinthe appended information includes at least one of a photo, a video, aphone number, an email address, a postal address, a message and acalendar event.
 9. The contact enrichment system according to claim 8,wherein the contact enrichment server links the information appended tothe at least one contact to corresponding information in the matchingprofile, the contact enrichment server storing a link between theinformation appended and the corresponding information in a link table,the contact enrichment server updating the information appended to theat least one contact using the link table when the correspondinginformation in the matching profile changes.
 10. The contact enrichmentsystem according to claim 9, wherein the mobile device issues an alertin response to the update of the appended information in the at leastone contact, when the updated information is a message.
 11. The contactenrichment system according to claim 10, wherein the alert is an audiblesound, a visual cue displayed in conjunction with the at least onecontact, or both.
 12. The contact enrichment system according to claim10, further comprising: a client device connected to the network andconfigured to register, in the contact enrichment server, accountsstored in the social network server corresponding to the mobile device,wherein the contact enrichment server searches profiles corresponding tothe registered accounts.
 13. The contact enrichment system according toclaim 12, wherein the mobile device issues the alert when the message isdirected to a registered account.
 14. The contact enrichment systemaccording to claim 13, wherein the client device is further configuredto make the registered accounts publicly available.
 15. A contactenrichment server comprising: a communication interface configured tocommunicate via a network with at least one social network server, aclient device and mobile device; an electronic memory configured tostore account registration information identifying accounts stored inthe social network server in correspondence to the mobile device; and aprocessor configured to search the social network server using theaccount registration information to identify profiles matching at leastone contact stored in the mobile device, and append information from amatching profile to the at least one contact stored in the mobiledevice.
 16. The contact enrichment server according to claim 15, whereinthe processor identifies the matching profile by comparing a subset ofdata items included in the at least one contact with profiles associatedwith accounts identified by the account registration information. 17.The contact enrichment server according to claim 15, wherein theprocessor identifies the matching profile when at least one of thesubset of data items in the at least one contact is present in thematching profile.
 18. The contact enrichment server according to claim17, wherein the processor links the information appended to the at leastone contact to corresponding information in the matching profile, theprocessor storing a link between the information appended and thecorresponding information in a link table in the electronic memory. 19.The contact enrichment server according to claim 18, wherein theprocessor updates the information appended to the at least one contactusing the link table when the corresponding information in the matchingprofile changes.
 20. The contact enrichment server according to claim17, wherein the subset of data items include at least one of a name, aphone number, an email address and a postal address.
 21. A contactenrichment method for enriching contacts stored in a mobile device,comprising: registering, at a content enrichment server, at least oneaccount corresponding to a social network server, the at least oneaccount including a plurality of profiles stored on the social networkserver; registering, at the content enrichment server, the mobile devicein associating with the at least one account, the mobile device storinga plurality of contacts; searching, at the content enrichment server,the at least one account to identify matching profiles matching at leastone contact stored in the mobile device; appending, at the contactenrichment server, information from matching profiles to the at leastone contact; and transmitting, from the contact enrichment server to themobile device, the at least one contact appended with information frommatching profiles.
 22. The method according to claim 21, furthercomprising: identifying, at the contact enrichment server, a matchingprofile using a subset of data items included in the at least onecontact.
 23. The method according to claim 21, further comprising:linking, at the contact enrichment server, the information appended tothe at least one contact with corresponding information in matchingprofiles; and updating, at the contact enrichment server, theinformation appended to the at least one contact when the correspondinginformation in matching profiles changes.
 24. The method according toclaim 21, wherein the information appended to the at least one contactincludes a message directed to the at least one account registered. 25.A contact enrichment server comprising: means for communicating via anetwork with at least one social network server, a client device andmobile device; means for storing account registration informationidentifying accounts stored in the social network server incorrespondence to the mobile device; and means for searching the socialnetwork server using the account registration information to identifyprofiles matching at least one contact stored in the mobile device, andmeans for appending append information from a matching profile to the atleast one contact stored in the mobile device.
 26. A computer-readablemedium storing computer-readable instructions thereon, thecomputer-readable instructions when executed by a computer cause thecomputer to perform the method comprising: registering in a contactenrichment server at least one account corresponding to a social networkserver, the at least one account including a plurality of profilesstored on the social network server; registering in the contactenrichment server a mobile device in associating with the at least oneaccount, the mobile device storing a plurality of contacts; searchingthe at least one account to identify matching profiles matching at leastone contact stored in the mobile device; appending information frommatching profiles to the at least one contact; and transmitting, fromthe contact enrichment server to the mobile device, the at least onecontact appended with information from matching profiles.